package com.ecable.action;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sun.org.apache.commons.beanutils.BeanUtils;
import com.ecable.bean.DistrictTO;
import com.ecable.delegate.DistrictMgrDelegate;
import com.ecable.exception.ConnectionException;
import com.ecable.formbean.StateFormBean;
import com.ecable.util.UtilConstants;

public class UpdateDistrictAction extends HttpServlet {
	private static final long serialVersionUID = 6635069642812640760L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		RequestDispatcher rd = null;
		boolean flag = false;
		String path = "";
		StateFormBean sfb = new StateFormBean();
		Map map = request.getParameterMap();
		try {
			BeanUtils.populate(sfb, map);
		} catch (IllegalAccessException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (InvocationTargetException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		try {
			try {
				DistrictTO dto = new DistrictTO(sfb);
				flag = new DistrictMgrDelegate().updateDist(dto);
			} catch (ConnectionException e) {
				throw new ServletException("ConnectionTO Failed");
			}
			if (flag) {
				request.setAttribute("status", UtilConstants._UPDATE_DISTRICT);
				path = UtilConstants._DISTRICT_HOME_ACTION;
			} else {
				request.setAttribute("status",
						UtilConstants._UPDATE_DISTRICT_FAILED);
				path = UtilConstants._DISTRICT_HOME_ACTION;
			}
		} catch (Exception e) {
			e.printStackTrace();
			request.setAttribute("status", UtilConstants._INVALIED_ENTRY);
			path = UtilConstants._DISTRICT_HOME_ACTION;
		}
		rd = request.getRequestDispatcher(path);
		rd.forward(request, response);
	}
}
